• Screenshot_2016-07-30-13-36-50_com.aidebar.spandemo_1469857042549.jpg
    如果需要实现这种效果,
    直接上代码
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    tv = (TextView) findViewById(R.id.tv);

    tv.append("hehehehahaha");

    SpannableString ssb = new SpannableString("点击跳转");
    ssb.setSpan(new ClickableSpan() {

    @Override
    public void onClick(View view) {
    startActivity(new Intent(MainActivity.this,SecondActivity.class)); //点击跳转
    }
    @Override
    public void updateDrawState(TextPaint ds) { //设置样式
    super.updateDrawState(ds);
    ds.setColor(getResources().getColor(R.color.textclick)); //字体颜色
    ds.setUnderlineText(true); //下划线
    }
    },0,ssb.length(),SpannableStringBuilder.SPAN_EXCLUSIVE_EXCLUSIVE);
    tv.append(ssb);
    tv.setMovementMethod(LinkMovementMethod.getInstance()); //开始响应点击事件

这里设置的是ClickableSpan,即点击效果,同时在updateDrawState中设置了字体样式,

如果仅仅是想要下划线或者字体变色的话,那么
ssb.setSpan(new ForegroundColorSpan(Color.MAGENTA),0,ssb.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
ssb.setSpan(new UnderlineSpan(),0,ssb.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
即可,还有很多各式各样的span类型,大家自己试吧